/*

    包含所有 action creator

    同步的action返回的是一个对象
    异步的action返回的是一个函数
 */

// 增加
import {DECREMENT, INCREMENT} from "./action-types";

// 增加(返回的是函数，函数里面返回的是对象。直接写{}以为是代码块，所以加上()，使用小() 还能省去写return)
export const increment = (data) => ({type: INCREMENT, data})
// 减少
export const decrement = (data) => ({type: DECREMENT, data})
// 异步增加（返回的是函数，函数里面返回的又是一个函数）
// 要想使用这种写法（最终返回在是一个函数），必须在创建store的时候添加中间价的操作
export const incrementAsync = (data) => {
    return dispatch => {
        // 异步代码
        setTimeout(() => {
            // 1s 之后才去分发一个增加的action
            dispatch(increment(data));
        }, 1000)
    }
}